package com.petdog.module.community.service;

import com.petdog.infrastructure.entity.UserCommunity;
import com.petdog.module.community.dto.JoinCommunityRequest;
import com.petdog.module.community.dto.CommunityMemberResponse;

import java.util.List;

/**
 * 用户社区关联服务接口
 */
public interface UserCommunityService {
    
    /**
     * 加入社区
     */
    boolean joinCommunity(JoinCommunityRequest request);
    
    /**
     * 退出社区
     */
    boolean leaveCommunity(Long userId, Long communityId);
    
    /**
     * 获取社区成员列表
     */
    List<CommunityMemberResponse> getCommunityMembers(Long communityId, int page, int pageSize);
    
    /**
     * 获取用户在社区中的角色
     */
    UserCommunity getUserRoleInCommunity(Long userId, Long communityId);
    
    /**
     * 更新用户在社区中的角色
     */
    boolean updateUserRole(Long userId, Long communityId, Integer role);
    
    /**
     * 获取社区成员数量
     */
    int getCommunityMemberCount(Long communityId);
    
    /**
     * 判断用户是否为社区管理员
     */
    boolean isCommunityAdmin(Long userId, Long communityId);
}